package com.own.business.login.core.service;

import com.own.business.login.core.entity.vo.TokenResponseVo;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * AutoLoginService
 *
 * @author chenxueli
 * @date 2022-11-13 11:07:00
 */
public interface AutoLoginService {

    /**
     * 创建自动登录密码信息
     *
     * @param client 客户端
     * @return 是否登录成功
     */
    String createAutoLoginKey(String client);

    /**
     * 根据token和用户id创建自动登录密码信息
     *
     * @param token  token
     * @param client 客户端
     * @param userId 用户id
     * @return 是否登录成功
     */
    String createAutoLoginKey(String token, String client, Long userId);

    /**
     * 根据用户id删除自动登录密码信息
     *
     * @param userId 用户id
     */
    void deleteByUserId(Long userId);

    /**
     * 根据用户id删除自动登录密码信息
     *
     * @param userId 用户id
     * @param client 客户端
     */
    void deleteByUserId(Long userId, String client);

    /**
     * 自动登录
     *
     * @param password 自动登录密码
     * @param request  请求信息
     * @param response 响应信息
     * @return token
     */
    TokenResponseVo login(String password, HttpServletRequest request, HttpServletResponse response);

}
